import models.*;
import retrofit2.Call;
import retrofit2.http.*;

public interface GalileoAPI {
    @GET("/api/v1/task")
    Call<Task> getTask(@Query("id") String id, @Query("token") String token);

    @GET("/api/v1/token")
    Call<TokenInfo> getToken(@Query("username") String username, @Query("password") String password);

    @GET("/api/v1/system/info")
    Call<RobotInfo> getRobotInfo(@Query("token") String token);

    @PUT("/api/v1/system/speed")
    Call<SimpleResponse> setSpeed(@Query("token") String token, @Body SetSpeedReq req);

    @DELETE("/api/v1/system/config")
    Call<SystemConfig> resetSystemConfig(@Query("token") String token, @Query("key") String key);

    @GET("/api/v1/navigation/pose")
    Call<Pose> getRobotPose(@Query("token") String token);

    @POST("/api/v1/navigation/start_nav_task")
    Call<Task> startNavTask(@Query("token") String token, @Body PoseReq pose);
}
